package eteam.aps.systeminterface.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * sp_org实体
 */
@Data
@TableName(value = "sp_org")
public class OrgEntity implements Serializable {
    /**
     * 主键Id
     */
    @TableId(value = "FOrgId", type = IdType.INPUT)
    public String forgid;
    /**
     * 编号
     */
    @TableField(value = "FCode")
    public String fcode;
    /**
     * 内部编号，用于查询使用，每层机构/部门ID拼接
     */
    @TableField(value = "FInsideCode")
    public String finsidecode;
    /**
     * 名称
     */
    @TableField(value = "FName")
    public String fname;
    /**
     * 上级单位Id
     */
    @TableField(value = "FAboveId")
    public String faboveid;
    /**
     * 部门所属机构ID
     */
    @TableField(value = "FMentOrgId")
    public String fmentorgid;
    /**
     * 0: 机构
     * 1: 部门
     */
    @TableField(value = "FIsDept")
    public Integer fisdept;
    /**
     * 类别：0机构，10部门，20班组
     */
    @TableField(value = "FUnitTypeId")
    public Integer funittypeid;
    /**
     * 负责人
     */
    @TableField(value = "FManager")
    public String fmanager;
    /**
     * 负责人id
     */
    @TableField(value = "FManagerId")
    public String fmanagerid;
    /**
     * 电话
     */
    @TableField(value = "FTel")
    public String ftel;
    /**
     * 排序
     */
    @TableField(value = "FOrder")
    public Integer forder;
    /**
     * 备注
     */
    @TableField(value = "FRemark")
    public String fremark;
    /**
     * 状态【-1删除 0停用 1启用】
     */
    @TableField(value = "State")
    public Integer state;

    /**
     *
     */
    @TableField(value = "FRecorder")
    public String frecorder;
    /**
     *
     */
    @TableField(value = "FRecorderName")
    public String frecordername;
    /**
     *
     */
    @TableField(value = "FRecordTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    public Date frecordtime;
    /**
     *
     */
    @TableField(value = "FLastModifier")
    public String flastmodifier;
    /**
     *
     */
    @TableField(value = "FLastModifierName")
    public String flastmodifiername;
    /**
     *
     */
    @TableField(value = "FLastModifyTime")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    public Date flastmodifytime;

    /**
     * 下级机构
     */
    @TableField(exist = false)
    public List<OrgEntity> children;
    /**
     * 是否存在子节点
     */
    @TableField(exist = false)
    public Boolean haschildren;
    /**
     * 是否叶子节点
     */
    @TableField(exist = false)
    public Boolean isleaf;
}
